package com.sgb.member;

import android.app.Application;

import androidx.multidex.MultiDexApplication;

import com.alibaba.android.arouter.launcher.ARouter;
import com.swgk.core.BaseAppApplication;
import com.swgk.core.base.api.BaseApiSourceImpl;
import com.swgk.core.base.model.preference.BasePreferenceSource;
import com.swgk.core.util.MLog;

public class MemberApplication extends BaseAppApplication {

    @Override
    protected BaseApiSourceImpl getApiSoure() {
        return new BaseApiSourceImpl();
    }

    @Override
    protected String getBaseUrl() {
        return BuildConfig.BASE_URL;
    }

    @Override
    protected String getDbPath() {
        return null;
    }

    @Override
    protected <T> Class<T> getPreferenceSourceClass() {
        return (Class<T>) BasePreferenceSource.class;
    }

    @Override
    public void onCreate() {
        super.onCreate();
        init(this);
        MemberConfig.init(this, BuildConfig.BUILD_TYPE);
    }

    /**
     * 初始化
     */
    private void init(Application application) {
        //初始化数据存储
//        MMKV.initialize(application);
        MLog.DEBUG_LOG = BuildConfig.BUILD_TYPE.equals("release") && !com.swgk.core.BuildConfig.DEBUG ? true : true;
        MLog.isOnlin = BuildConfig.BUILD_TYPE.equals("release");
        //初始化路由，这两行必须写在init之前，否则这些配置在init过程中将无效
        if (MLog.DEBUG_LOG) {
            // 打印日志
            ARouter.openLog();
            // 开启调试模式(如果在InstantRun模式下运行，必须开启调试模式！线上版本需要关闭,否则有安全风险)
            ARouter.openDebug();
            ARouter.printStackTrace();// 打印日志的时候打印线程堆栈
        }
        ARouter.init(application);
    }
}
